In a heterogeneous information technology environment, different computer systems may be used within an organization or across different organizations to perform processes on shared master data. For example, a system within a company and a system belonging to an affiliated company may share information about customer and product information. A system for managing customer relationships and a system for managing product production may share common information. The master data shared by different systems may be stored in different locations, and may be in incompatible formats. Each system that accesses master data may be developed independently, and may have its own user interface, data storage, and processes for processing the master data. Each system may be designed to optimize its performance to handle particular tasks.
In one example, the master data are stored in main databases maintained by server computers, which provide the master data to client computers. The client computers have local databases to store data that is accessed locally. The master data includes data objects, such as customer objects or product objects, that have attributes to describe various aspects of the entity (e.g., customer or product) represented by the data objects. Some attributes of the customer object or product object are local while some attributes are global The local attributes are stored in databases local to each client computer, while the global attributes are replicated asynchronously to different databases (e.g., the main databases and/or databases that are local to different client computers) periodically or at certain trigger points. After the global attributes are replicated to various databases, the systems may access customer data and product data stored in local databases using local application programming interfaces. When the number of different systems is large, replicating data across the various systems may requires a long period of time. It is possible that one client system is accessing customer or product data that has been updated, while another client system is accessing data that has not yet been updated.